﻿using System;
using System.Collections.Generic;
using System.Text;

namespace gChartSharp
{
    public class RadarChart : ChartBase
    {
        public override ChartType ChartType { get { return ChartType.r; } }

        public ColorParam Colors { get; set; }
        public SolidFillParam SolidFill { get; set; }
        public DataScaleParam DataScale { get; set; }
        public LinearGradientFillParam LinearGradientFill { get; set; }
        public LinearStripesFillParam LinearStripesFill { get; set; }
        public TitleParam Title { get; set; }
        public LegendParam Legend { get; set; }
        public AxisTypeParam AxisTypes { get; set; }
        public AxisStyleParam AxisStyles { get; set; }
        public AxisLabelParam AxisLabels { get; set; }
        public AxisLabelPositionParam AxisLabelPositions { get; set; }
        public AxisRangeParam AxisRange { get; set; }
        public GridLinesParam GridLines { get; set; }
        public ShapeMarkerParam ShapeMarkers { get; set; }
        public RangeMarkerParam RangeMarkers { get; set; }

        public RadarChart(int width, int height) : base(width, height) { }

        public RadarChart(int width, int height, EncodingType encType) : base(width, height, encType) { }

        public RadarChart(int width, int height, float[] dataSet) : base(width, height, dataSet) { }

        public RadarChart(int width, int height, EncodingType encType, float[] dataSet)
            : base(width, height, encType, dataSet) { }

        public override string GetURL()
        {
            StringBuilder sb = CreateBaseURL();
            RenderIChartParam(this.Colors, ref sb);
            RenderIChartParam(this.SolidFill, ref sb);
            RenderIChartParam(this.DataScale, ref sb);
            RenderIChartParam(this.LinearGradientFill, ref sb);
            RenderIChartParam(this.LinearStripesFill, ref sb);
            RenderIChartParam(this.Title, ref sb);
            RenderIChartParam(this.Legend, ref sb);
            RenderIChartParam(this.AxisTypes, ref sb);
            RenderIChartParam(this.AxisStyles, ref sb);
            RenderIChartParam(this.AxisLabels, ref sb);
            RenderIChartParam(this.AxisLabelPositions, ref sb);
            RenderIChartParam(this.AxisRange, ref sb);
            RenderIChartParam(this.GridLines, ref sb);
            RenderIChartParam(this.ShapeMarkers, ref sb);
            RenderIChartParam(this.RangeMarkers, ref sb);

            return sb.ToString();
        }

        public override string GetHTML()
        {
            return "";
        }
    }
}
